/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package action;

import java.io.*;
import java.net.*;

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
import negocio.UsuarioManager;
import persistencia.pojo.Usuario;

/**
 *
 * @author Victor
 */
public class CrearUsuarioAction extends HttpServlet {
   
    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            
            SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
            Date fechaIngreso = null;

            
            String codigo = request.getParameter("usuarioCodigo");
            String nombre = request.getParameter("usuarioNombre");
            String apellido = request.getParameter("usuarioApellido");
            String anexo_usuario = request.getParameter("usuarioAnexo");
            String correo_usuario = request.getParameter("usuarioCorreo");
            String tipo_usuario = request.getParameter("usuarioCodPerfil");
            String tx_tipo_usuario = request.getParameter("usuarioPerfil");
            String fe_ingreso_usuario = request.getParameter("usuarioFechaIng");
            String clave = request.getParameter("usuarioClave");
            String estado = request.getParameter("estado");
            
            try {
                UsuarioManager mgr = new UsuarioManager();
                
                Usuario user = mgr.getUsuario(codigo);
                if (user==null){
                    fechaIngreso = formatoDelTexto.parse(fe_ingreso_usuario);
                    mgr.saveUsuario(new Usuario(codigo, nombre, apellido, clave, tipo_usuario, tx_tipo_usuario, correo_usuario, anexo_usuario, fechaIngreso, estado));
                    mensaje(response, "0", "El usuario se grabo correctamente.");
                }else{
                    mensaje(response, "-2", "El usuario ya existe");
                }
                mgr.closeSesion();
                
                
                
            } catch (Exception e) {
                mensaje(response, "-2", e.toString());
                
            }
        
        } catch (Exception e) {
            System.out.println(e);
        }
    } 
    
    private void mensaje(HttpServletResponse response, String cod,  String mensa) throws ServletException, IOException{
        PrintWriter out = response.getWriter();
        try {

            out.println("{\"proceso\": { \"res\": [\"" + cod +"\"], \"msg\": [\"" + mensa +"\"]}}");
            out.flush();
        } finally { 
            out.close();
        }
    }
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
